package bdddaosimpl;

import java.util.List;
import java.util.Set;

import bdd.beans.*;
import bdddaos.*;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashSet;

public class DAOJnttypeecenseignantImpl implements DAOJnttypeecenseignant {


        private DBLink dblink;

        public DAOJnttypeecenseignantImpl() {
		super();
		this.dblink = new DBLink();
	}


	@Override
	public Jnttypeecenseignant save(Jnttypeecenseignant o) {
		try {
			this.dblink.connexion();
			String s = "INSERT INTO JNTTYPEECENSEIGNANT (NUMTYPE, NUMEC, NUMENSEIGNANT, NBHEURES)" +
				" VALUES (" + o.getType().getNumtype() +
                                ", " + o.getEc().getNumec() +
                                ", " + o.getEnseignant().getNumenseignant() +
				", " + o.getNbheures() + ")";
			this.dblink.setPst(this.dblink.getConnection().prepareStatement(s));
			this.dblink.getPst().executeQuery();
		}
		catch(SQLException se) {
			System.out.println("Erreur de requete : " + se);
		}
		finally{
			this.dblink.deconnexion();
		}
		return o;
	}

	@Override
	public Jnttypeecenseignant find(Integer id) {
		Jnttypeecenseignant unJnttypeecenseignant = new Jnttypeecenseignant();
		unJnttypeecenseignant.setId(id);
		try {
			dblink.connexion();
			this.dblink.setPst(this.dblink.getConnection().prepareStatement("SELECT * FROM Jnttypeecenseignant WHERE IDROLE = " + id));
			ResultSet rs = this.dblink.getPst().executeQuery();
			while(rs.next()) {
				//unJnttypeecenseignant.setLibelle(rs.getString("LIBELLE"));
			}
		}
		catch(SQLException se) {
			System.out.println("Erreur de requ�te");
		}
		finally{
			dblink.deconnexion();
		}
		return unJnttypeecenseignant;

	}

	@Override
	public List<Jnttypeecenseignant> findAll() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void update(Jnttypeecenseignant o) {
		try {
			this.dblink.connexion();
			String s = "UPDATE JNTTYPEECENSEIGNANT SET NBHEURES=" + o.getNbheures() + " WHERE NUMTYPE=" + o.getType().getNumtype() + " AND NUMEC="+ o.getEc().getNumec() + " AND NUMENSEIGNANT="+ o.getEnseignant().getNumenseignant();

			this.dblink.setPst(this.dblink.getConnection().prepareStatement(s));
			this.dblink.getPst().executeQuery();
		}
		catch(SQLException se) {
			System.out.println("Erreur de requete : " + se);
		}
		finally {
			this.dblink.deconnexion();
		}
	}

	@Override
	public void delete(Jnttypeecenseignant persistentObject) {
		// TODO Auto-generated method stub

	}

	@Override
	public Set<Jnttypeecenseignant> findByEnseignant(Integer numEnseignant) {
                Set<Jnttypeecenseignant> listeJnttypeecenseignant = new HashSet<Jnttypeecenseignant>();
		Jnttypeecenseignant unJnttypeecenseignant = new Jnttypeecenseignant();
		//unJnttypeecenseignant.setEnseignant(new DAOEnseignantImpl().find(numEnseignant));
		try {
			dblink.connexion();
			this.dblink.setPst(this.dblink.getConnection().prepareStatement("SELECT * FROM Jnttypeecenseignant WHERE numenseignant = " + numEnseignant));
			ResultSet rs = this.dblink.getPst().executeQuery();
			while(rs.next()) {
                            unJnttypeecenseignant.setNbheures(rs.getInt("NBHEURES"));
                            unJnttypeecenseignant.setEc(new DAOEcImpl().find(rs.getInt("NUMEC")));
                            unJnttypeecenseignant.setType(new DAOTypeImpl().find(rs.getInt("NUMTYPE")));
			}
                        listeJnttypeecenseignant.add(unJnttypeecenseignant);
		}
		catch(SQLException se) {
			System.out.println("Erreur de requete");
		}
		finally{
			dblink.deconnexion();
		}
		return listeJnttypeecenseignant;
	}

	@Override
	public Set<Jnttypeecenseignant> findByEc(Integer numEc) {
		// TODO Auto-generated method stub
		return null;
	}

    public Set<Jnttypeecenseignant> findByType(Integer numType) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}
